﻿/**********************************************************************
 * @file   FITKFESubSysAcoustic.h
 * @brief  FE子系统腔体数据声明
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2024-12-17
 *********************************************************************/
#ifndef _FITK_FE_SUBSYS_ACOUSTIC_H___
#define _FITK_FE_SUBSYS_ACOUSTIC_H___
 
#include "FITKAbstractFESubSys.h"

namespace Interface
{
    class FITKAbstractElement;
}

namespace Acoustics
{
    class FITKAcousticsAbstractSpectra;
    class FITKAcousticsAbsMaterial;
    /**
     * @brief  FE子系统腔体数据
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date   2024-12-13
     */
    class FITKAcousticsModelAPI FITKFESubSysAcoustic : public FITKAbstractFESubSys
    {
        Q_OBJECT
    public:
        /**
         * @brief Construct a new FITKFESubSysAcoustic object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-13
         */
        explicit FITKFESubSysAcoustic();
        /**
         * @brief Destroy the FITKFESubSysAcoustic object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-13
         */
        virtual ~FITKFESubSysAcoustic();
        /**
        * @brief 获取子系统类型
        * @return FESubSysType
        * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-13
        */
        virtual FITKAbstractFESubSys::FESubSysType getFESubSysType() override;
        /**
         * @brief    当阻尼是阻尼损耗因子数据-如果阻尼没设置则为默认的true
         * @return   bool true:损耗因子 false:吸声系数
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-17
         */
        bool isDampingLoss();
        /**
         * @brief    设置阻尼谱ID
         * @param[i] dampSpecID 
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-17
         */
        void setDampingSpectraID(int dampSpecID);
        /**
         * @brief    获取阻尼谱ID
         * @return   int
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-17
         */
        int getDampingSpectraID();
        /**
         * @brief    获取阻尼谱
         * @return   FITKAcousticsAbstractSpectra *
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-12-17
         */
        FITKAcousticsAbstractSpectra* getDampingSpectraObj();

    protected:
        /**
         * @brief  阻尼谱ID
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-12-17
         */
        int _dampSpectraID{ -1 };
    };

}


#endif
